/*
 * beeTips jQuery plugin 
 * version 0.6.3
 * 
 */

(function($) {
	$.fn.beeTips = function(options) {
		$.each(this[0], function() {
			var e = $(this);

			if (options != null)
				initItems(e, options.initVals);

			var itip = e.attr('remind');
			var tip = e.attr('warn');
			var reg = e.attr('reg');

			if (itip != null || (tip != null && tip != null)) {

				var imLeft = e.css('margin-left');
				var lDiv;

				e.wrap('<div></div>').parent().css('float', 'left').css('position', 'relative');

				if (itip != null) {
					lDiv = $('<div class=\'beeTipsDivRemind\'></div>').html(itip);

					lDiv.css('margin-left', imLeft);
					lDiv.insertAfter(e);

					lDiv.click(function() {
						e.focus();
					});

					e.focus(function() {
						e.parent().find('.beeTipsDivRemind').css('visibility', 'hidden');
					});

					e.blur(function() {
						if (e.val() == '')
							e.parent().find('.beeTipsDivRemind').css('visibility', 'visible');
					});
				}

				if (reg != null && tip != null) {
					var idiv = $('<p></p>').html(tip);
					lDiv = $('<div class=\'beeTipsDivWarn\'></div>').html(idiv);

					lDiv.css('margin-left', imLeft);
					lDiv.insertAfter(e);

					lDiv.click(function() {
						e.focus();
					});

					e.focus(function() {
						e.parent().find('.beeTipsDivWarn').css('visibility', 'hidden');
					});

					e.blur(function() {
						if (e.val().match(eval(reg)) == null)
							e.parent().find('.beeTipsDivWarn').css('visibility', 'visible');
					});
				}
				
				tDiv = $('<div class=\'beeTipsDivTip\'></div>').html("");

				tDiv.css('margin-left', imLeft);
				tDiv.insertAfter(e);

				tDiv.click(function() {
					e.focus();
				});

				e.focus(function() {
					e.parent().find('.beeTipsDivTip').css('visibility', 'hidden');
				});
				
			}
		});
	};

	$.fn.beeCheck = function() {
		var r = true;

		$.each(this[0], function() {
			var v = $(this).attr("reg");
			if (!(v === undefined)) {
				var reg = eval(v);
				if (this.value.match(reg) == null) {
					r = false;
					$(this).blur();
				}
			}
		});
		return r;
	};

	$.fn.beeAlert = function(id, msg) {
		var r = true;

		$.each(this[0], function() {
			var v = $(this).attr("id");
			if (!(v === undefined) && v == id) {
				tDiv = $(this).parent().find('.beeTipsDivTip');
				tDiv.html($('<p></p>').html(msg));
				tDiv.css('visibility', 'visible');
			}
		});
		return r;
	};

	function initItems(ele, items) {
		if (items != null && items.length > 0) {
			for (index in items) {
				var item = items[index];
				if (item.name != null) {
					if (ele.attr('name') == item.name) {
						ele.attr('reg', '/' + item.reg + '/');
						ele.attr('warn', item.warn);
					}
				}
			}
		}
	}
	;
})(jQuery);